package cn.lkk.samples.apis.dates;

import java.util.*;

/**
 * java.util.GregorianCalendar 类的使用演示。
 * GregorianCalendar 是 Calendar 的一个具体子类，提供了世界上大多数国家/地区使用的标准日历系统。
 */
public class GregorianCalenderAPI {
    public static void main(String[] args) {

        // 1. GregorianCalendar 对象的构造
        GregorianCalendar cal1 = new GregorianCalendar();//表示当前时间
        GregorianCalendar cal2 = new GregorianCalendar(1999, 11, 31);
        GregorianCalendar cal3 = new GregorianCalendar(1999, Calendar.DECEMBER, 31);
        GregorianCalendar cal4 = new GregorianCalendar(1999, Calendar.DECEMBER, 31, 23, 59, 59);

        // 2. 获取日期信息
        GregorianCalendar now = new GregorianCalendar();
        int month = now.get(Calendar.MONTH);
        int weekday = now.get(Calendar.WEDNESDAY);

        // 3. 修改日期信息
        GregorianCalendar deadline = new GregorianCalendar(2015, Calendar.MAY, 20, 10, 0, 0);
        deadline.set(Calendar.YEAR, 2016);
        deadline.set(Calendar.MONTH, Calendar.AUGUST);
        deadline.set(Calendar.DAY_OF_MONTH, 1);

        // 4. 一次修改多个属性
        deadline.set(2017, Calendar.JANUARY, 15);

        // 5. 增加某个属性
        deadline.add(Calendar.YEAR, 1);
    }

    /**
     * 演示 GregorianCalendar 与 Date 的相互变换
     */
    public static void dates() {
        // 1. 获取 GregorianCalendar 对象表示的时间
        //    通过该方式可以创建爱一个指定表示日期的 Date
        GregorianCalendar calendar = new GregorianCalendar(20125, 5, 15);
        Date date = calendar.getTime();

        // 2. 设置 GregorianCalendar 对象表示的时间
        Date later = new Date(date.getTime() + 1000 * 60);
        calendar.setTime(later);
    }
}
